package Learn;

import java.math.BigInteger;

public class BigIntegerDemo2 {
    //常见方法
    //add
    //subtract
    //multiply
    //divide

    //divideAndRemainder 除法 获取商和余数
    //equals
    //pow
    //max/min
    //intValue
    public static void main(String[] args) {
        BigInteger bd1=BigInteger.valueOf(10);
        BigInteger bd2=BigInteger.valueOf(5);
        BigInteger bd3=bd1.add(bd2);
        System.out.println(bd3);

        //获取商和余数
        BigInteger[]arr=bd1.divideAndRemainder(bd2);
        System.out.println(arr[0]);
        System.out.println(arr[1]);

        boolean result=bd1.equals(bd2);
        System.out.println(result);

        BigInteger bd4=bd1.pow(2);
        System.out.println(bd4);

        //max
        BigInteger bd5=bd1.max(bd4);
        //把比较大的进行返回不会创建新的BigInteger对象 因为只做了一个判断
        System.out.println(bd5==bd4);

        //转换为int
        //超过范围报错
        BigInteger bd6=BigInteger.valueOf(214748364L);
//        int i=bd6.intValue();
//        System.out.println(i);

//        bd6.longValue();
//        bd6.doubleValue();



    }

    //原理 long 8个字节 最多64位
    //符号存到一个常量中
    //有一个数组mag 把大整数拆成n段 放到数组当中
    //转成2进制补码 32位分成一组 转成10进制
    //分别放进数组的 0 1 2索引下

}
